]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
dash: account for scale factor to determine icon size
authorCosimo Cecchi <cosimoc@gnome.org>
Sun, 16 Feb 2014 05:35:13 +0000 (21:35 -0800)
committerCosimo Cecchi <cosimoc@gnome.org>
Sun, 16 Feb 2014 15:49:25 +0000 (07:49 -0800)
https://bugzilla.gnome.org/show_bug.cgi?id=705410

js/ui/dash.js

index dfe8710ca5df38b3573425629d2161f5eb57fbd2..0d5db8e8bba7de850cbef6f777a7ee76ccf579ba 100644 (file)
@@ -381,6 +381,8 @@ const DashActor = new Lang.Class({
     }
 });
 
+const baseIconSizes = [ 16, 22, 24, 32, 48, 64 ];
+
 const Dash = new Lang.Class({
     Name: 'Dash',
 
@@ -632,25 +634,24 @@ const Dash = new Lang.Class({
         let minHeight, natHeight;
 
         // Enforce the current icon size during the size request
-        let [currentWidth, currentHeight] = firstIcon.icon.get_size();
-
-        firstIcon.icon.set_size(this.iconSize, this.iconSize);
+        firstIcon.setIconSize(this.iconSize);
         [minHeight, natHeight] = firstButton.get_preferred_height(-1);
 
-        firstIcon.icon.set_size(currentWidth, currentHeight);
+        let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
+        let iconSizes = baseIconSizes.map(function(s) {
+            return s * scaleFactor;
+        });
 
         // Subtract icon padding and box spacing from the available height
-        availHeight -= iconChildren.length * (natHeight - this.iconSize) +
+        availHeight -= iconChildren.length * (natHeight - this.iconSize * scaleFactor) +
                        (iconChildren.length - 1) * spacing;
 
         let availSize = availHeight / iconChildren.length;
 
-        let iconSizes = [ 16, 22, 24, 32, 48, 64 ];
-
-        let newIconSize = 16;
+        let newIconSize = baseIconSizes[0];
         for (let i = 0; i < iconSizes.length; i++) {
             if (iconSizes[i] < availSize)
-                newIconSize = iconSizes[i];
+                newIconSize = baseIconSizes[i];
         }
 
         if (newIconSize == this.iconSize)